<?php 
header("content-type:text/html;charset=utf-8");

/*
__call
    当调用不存在的方法时  自动触发
    参1 :接收调用不存在 方法的名字
    参2 :接收调用不存在 方法的参数

__callStatic
    当调用不存在的静态方法时  自动触发
    参1 :接收调用不存在 静态方法的名字
    参2 :接收调用不存在 静态方法的参数

 */

class Person
{
    public function say()
    {
        echo "say.....<br>";
    }
    public function eat()
    {
        echo "eat.....<br>";
    }

    public function __call($funName, $params)
    {
        echo "啊,我被call了<br>";
        echo '<pre>';
            print_r($funName);
            echo '<br>';
            print_r($params);
        echo '</pre>';
    }

    public static function __callStatic($funName, $params)
    {
        echo "啊,我也被call了<br>";
        echo '<pre>';
            print_r($funName);
            echo '<br>';
            print_r($params);
        echo '</pre>';
    }
}

//实例化
$p = new Person();
$p->say();
$p->eat();

echo '<hr>';
//调用不存在的方法
$p->run('小李子', '小橙子', '小橘子');
echo '<br>';
$p->daye('我大爷', '你大爷', '他大爷');

echo '<hr>';
//静态的方式去调用
Person::yuqi('呵呵', '嘿嘿嘿', '啊啊啊..');

